Werkzeugunterstützte Eliminierung von Data-Races in Eclipse
نویسندگان
چکیده
Ein Data-Race bezeichnet eine Situation, in der ein Thread auf ein Datum zugreift und gleichzeitig ein anderen Thread darauf schreibt.[5] In C++ ist seit dem C++11-Standard festgelegt, dass das Verhalten im Falle eines Data-Races undefiniert ist (siehe [2] §1.10/21). Weil undefinierte Zustände von kritischen Systemen in einer technikdurchdrungenen Gesellschaft wie der unseren zu beliebig großen Sachund Personenschäden führen können, ist die Vermeidung solcher Zustände ein wichtiges Forschungsgebiet. Ein Data-Race wird als gefährlich bezeichnet, wenn durch das undefinierte Verhalten mindestens eine kritische Invariante des Gesamtsystems verletzt werden kann. Informell kann man sagen, dass Data-Races gefährlich sind, wenn das Gesamtverhalten des Systems unerwartet beeinflusst werden kann. Gefährlich ist z. B., wenn eine globale Zustandsvariable einen Wert annehmen kann, der kein definiertes Verhalten verursacht. Nicht gefährlich hingegen ist z. B. die Ausgabe von Fortschrittsinformationen auf der Kommandozeile. Weil die Identifikation von Data-Races im Allgemeinen unentscheidbar ist, verwenden wir eine überapproximierte Data-Race-Menge. Um dies zum Ausdruck zu bringen, sprechen wir im Folgenden von einem potentiellen Data-Race, wenn nicht entschieden werden kann, ob es sich um ein reales Data-Race handelt. Es hat sich gezeigt, dass die manuelle Bewertung einzelner potentieller Data-Races viel Zeit beansprucht und daher für Systeme mit vielen potentiellen Data-Races nicht mit vertretbarem Aufwand durchführbar ist. Hier bieten sich prinzipiell zwei Lösungswege. Zum einen kann man versuchen, durch präzisere Analysen die Anzahl der vermeintlichen DataRaces zu verringern. Zum anderen kann man versuchen, den manuellen Bewertungsprozess durch bessere Werkzeugunterstützung zu beschleunigen. Dazu kann man versuchen, mit Heuristiken potentielle Data-Races vorab zu klassifizieren[1]. Außerdem kann man relevante Informationen so aufbereiten, dass sie schneller verarbeitet werden können. Letzteren Ansatz verfolgen wir im Weiteren.
منابع مشابه
RaceVis: Ein Werkzeug zur Visualisierung von Data Races
Die Entwicklung und Wartung von nebenläufigen Programmen ist schwierig und fehleranfällig. Fehlende oder falsche Synchronisation kann zu komplizierten Fehlerszenarien führen, die dem Quelltext nur schwer anzusehen sind, jedoch katastrophale Auswirkungen auf die Programmausführung haben können. Durch statische Programmanalyse können alle Quelltextpositionen identifiziert werden, an denen bestimm...
متن کاملRemoval of Surfactants from Effluents
Physikalisch-chemische Beliandlungsverfaliren wurden hinsichtlich ihrer Wirksamkeit bei der Eliminierung von nichtionischen und anionischen Tensiden aus Klaranlagenablaufen gepriift. Flockulierung mit Eisen(III)-chlorid ergab eine Eliminierung von 79%; eine Batchadsorption mit Hive dreier verschiedener Aktivkohlen brachte 90 % Eliminienrng bei den anionischen und mehr ais 95% Eliminierung bei d...
متن کاملModellgetriebene Entwicklung von grafischen Benutzerschnittstellen
Der Ansatz der modellgetriebenen Softwareentwicklung fokussiert die Entwicklung von Software durch deren Modellierung und einer anschließenden Transformation bis auf den Quellcode der gewünschten Zielplattform. Eine durchgehend werkzeugunterstützte Transformation der Modelle auf Quellcode ist unter anderem auf Grund ungenügender oder fehlender Metamodelle zur Beschreibung einiger Aspekte bislan...
متن کاملOSAI: Ein Tool zur Themenanalyse in Lernraum-Foren
Die Foren von Online-Lernräumen konzentrieren sich typischerweise um Themen, die im Kurs besondere Aufmerksamkeit erfordern. Auch nach Abschluss der Diskussion finden Studierende wie Lehrende hier wertvolle Informationen. In diesem Beitrag wird ein Tool für die Themenanalyse in Lernraum-Foren vorgestellt. Das modulare Tool bietet eine Gesamtlösung an, die für verschiedene Lernraum-Systeme einse...
متن کاملAutomatische Duplikateliminierung in Aktivitätsdiagrammen von Fahrzeugfunktionen
Die Spezi®kation von Fahrzeugfunktionen ist eine komplexe Aufgabe. Zum Umgang mit dieser Komplexität werden zur Beschreibung der Funktionen gra®sche Modellierungssprachen wie UML verwendet. Bei der Modellierung können Duplikate entstehen, welche Ausgangspunkt für Fehler und Inkonsistenzen in der weiteren Entwicklung sind. Dieser Beitrag widmet sich der Eliminierung von Duplikaten, welche bei de...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Softwaretechnik-Trends
دوره 33 شماره
صفحات -
تاریخ انتشار 2013